#ifndef POINT3D_H
#define POINT3D_H

//#include "Model3d.h"

namespace Geometry
  {

  class Point3d
    {
    friend class Model3d;
    public:
      
      double operator[] (size_t i_index) const;

      Point3d(Point3d&& i_other);

    private:
      Point3d(double i_x, double i_y, double i_z);      
      Point3d(const Point3d& i_other);
      Point3d& operator=(const Point3d& i_other);

      void _Swap(Point3d& i_other);

      double m_x;
      double m_y;
      double m_z;
    };

  bool operator == (const Point3d& i_left, const Point3d& i_right);

  //double determinant(const Point3d& i_pt_1, const Point3d& i_pt_2, const Point3d& i_pt_3);
  }

#endif